# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
    'require.resolve(
    "react-native/scripts/react_native_pods.rb",
    {paths: [process.argv[1]]},
  )', __dir__]).strip

require_relative '../../scripts/ios/rns_update_info_plist'
require_relative '../../scripts/ios/rns_set_swift_compilation_flags'

platform :ios, min_ios_version_supported
prepare_react_native_project!

# From 0.76 new arch is enabled by default, in Example app we want to have old arch
ENV['RCT_NEW_ARCH_ENABLED'] = '0'

linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end

target 'ScreensExample' do
  config = use_native_modules!
  
  use_react_native!(
    :path => config[:reactNativePath],
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )
                    
  post_install do |installer|
    # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
    react_native_post_install(
      installer,
      config[:reactNativePath],
      :mac_catalyst_enabled => false,
      # :ccache_enabled => true
    )

    project_path = File.join(__dir__, 'ScreensExample.xcodeproj')
    info_plist_path = File.join(__dir__, 'ScreensExample', 'Info.plist')

    if ENV['RNS_USE_SCENE_DELEGATE'] == '1'
      rns_add_scene_manifest_to_info_plist(
        info_plist_path: info_plist_path
      )
      rns_set_swift_active_compilation_flag(
        project_path: project_path,
        flag: 'RNS_USE_SCENE_DELEGATE'
      )
    else
      rns_remove_scene_manifest_from_info_plist(
        info_plist_path: info_plist_path
      )
      rns_unset_swift_active_compilation_flag(
        project_path: project_path,
        flag: 'RNS_USE_SCENE_DELEGATE'
      )
    end
  end
end
